<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of teste
 *
 * @author Lucas Pinheiro
 */
class Publicidade extends Admin {

    public function __construct() {
        parent::__construct();
        $this->load->language('publicidades/publicidade_layout');
        $this->parser->set_title_pagina('Publicidade', 'adm/publicidades');
        $this->parser->set_title('Publicidade');
        $this->load->model('publicidades/publicidade_model');
        $this->load->model('publicidades/publicidade_rastrear_model');
        $this->load->model('publicidades/publicidade_tamanho_model');
        $this->load->model('publicidades/publicidade_tipos_model');
        $this->load->helper('publicidades/combos');
        $this->load->helper('text');
    }

    public function index() {
        $this->parser->site_view('publicidades/dashboard', array());
    }

    public function consultar() {
        $params = array();
        $params['CAMPOS'] = 'p.*, pt.altura, pt.largura, pt.nome as pt_nome, ptp.tipo as ptp_tipo, u.username';
        //$params['AND']['p.id_user'] = 1;
        $params['JOIN'][] = array(
            'TABELA' => $this->config->item('tblPublicidadeTamanho') . ' as pt',
            'TIPO' => 'INNER',
            'AND' => 'p.id_publicidade_tamanho = pt.id_publicidade_tamanho',
        );
        $params['JOIN'][] = array(
            'TABELA' => $this->config->item('tblPublicidadeTipos') . ' as ptp',
            'TIPO' => 'INNER',
            'AND' => 'p.id_publicidade_tipos = ptp.id_publicidade_tipos',
        );
        $params['JOIN'][] = array(
            'TABELA' => $this->config->item('tblUser') . ' as u',
            'TIPO' => 'INNER',
            'AND' => 'p.id_user = u.id_user',
        );
        $b_consultar = $this->publicidade_model->consultar($params);

        $v_dados = array();
        $v_dados['publicidades'] = array();
        $v_dados['lang_title_consulta'] = $this->lang->line('lang_title_consulta');

        if ($b_consultar != NULL) {
            foreach ($b_consultar as $k => $v) {
                $v_dados['publicidades'][$k]['id_publicidade'] = $v->id_publicidade;
                $v_dados['publicidades'][$k]['nome'] = $v->nome;
                $v_dados['publicidades'][$k]['conteudo'] = $v->conteudo;
                $v_dados['publicidades'][$k]['id_user'] = $v->username;
                $v_dados['publicidades'][$k]['id_publicidade_tipos'] = $v->id_publicidade_tipos;
                $v_dados['publicidades'][$k]['id_publicidade_tamanho'] = $v->id_publicidade_tamanho;
                $v_dados['publicidades'][$k]['altura'] = $v->altura;
                $v_dados['publicidades'][$k]['largura'] = $v->largura;
                $v_dados['publicidades'][$k]['pt_nome'] = $v->pt_nome;
                $v_dados['publicidades'][$k]['ptp_tipo'] = $v->ptp_tipo;

                $v_dados['publicidades'][$k]['acao'] = '<a href="' . base_adm('publicidades/publicidade/alterar/' . $v->id_publicidade) . '" title="Editar" class="button middle"><span class="icon icon145"></span></a>';
                $v_dados['publicidades'][$k]['acao'] .= '<a href="' . base_adm('publicidades/publicidade/excluir/' . $v->id_publicidade) . '" title="Excluir" class="button middle dialog_excluir"><span class="icon icon186"></span></a>';
            }
        }
        $this->parser->site_view('lst_publicidade', $v_dados);
    }

    public function cadastrar() {
        $v_dados = array();
             $v_dados['lang_title_rastrear'] = $this->lang->line('lang_title_rastrear');
        $v_dados['lang_title_form'] = $this->lang->line('lang_title_form_insert');
        $v_dados['id_publicidade'] = '';
        $v_dados['nome'] = '';
        $v_dados['conteudo'] = '';
        $v_dados['id_user'] = '';
        $v_dados['id_publicidade_tipos'] = combo_publicidade_tipos();
        $v_dados['id_publicidade_tamanho'] = combo_publicidade_tamanho();
        $v_dados['rastrear'] = array();
        $v_dados['action'] = base_adm('publicidades/publicidade/gravar');
        $this->parser->site_view('frm_publicidade', $v_dados);
    }

    public function excluir() {
        $params = array();
        $params['AND']['id_publicidade'] = $this->uri->segment(5);
        $b_exclusao = $this->publicidade_model->excluir($params);

        $v_dados = array();

        if ($b_exclusao == TRUE) {
            $v_dados['cod'] = 999;
            $v_dados['msg'] = $this->lang->line('lang_delete_success');
        } else {
            $v_dados['cod'] = 111;
            $v_dados['msg'] = $this->lang->line('lang_delete_error');
        }

        echo json_encode($v_dados);
    }

    public function alterar($id_publicidade) {
        $params = array();
        $params['AND']['id_publicidade'] = $id_publicidade;

        $b_consultar = $this->publicidade_model->get($params);
        $v_dados = array();
        $v_dados['lang_title_rastrear'] = $this->lang->line('lang_title_rastrear');
        $v_dados['lang_title_form'] = $this->lang->line('lang_title_form_update');
        if ($b_consultar != NULL) {
            $v_dados['id_publicidade'] = $b_consultar->id_publicidade;
            $v_dados['nome'] = $b_consultar->nome;
            $v_dados['conteudo'] = $b_consultar->conteudo;
            $v_dados['id_user'] = $b_consultar->id_user;
            $v_dados['id_publicidade_tipos'] = combo_publicidade_tipos($b_consultar->id_publicidade_tipos);
            $v_dados['id_publicidade_tamanho'] = combo_publicidade_tamanho($b_consultar->id_publicidade_tamanho);
            $v_dados['rastrear'] = $this->rastrear($b_consultar->id_publicidade);
            $v_dados['action'] = base_adm('publicidades/publicidade/gravar');
        }

        $this->parser->site_view('frm_publicidade', $v_dados);
    }

    public function gravar() {
        $this->form_validation->set_rules('nome', 'Nome', 'trim|required');
        $this->form_validation->set_rules('conteudo', 'Conteúdo', 'trim|required');
        $this->form_validation->set_rules('id_publicidade_tipos', 'Tipo', 'trim|required');
        $this->form_validation->set_rules('id_publicidade_tamanho', 'Tamanho', 'trim|required');

        $v_dados = array();

        if ($this->form_validation->run() === FALSE) {
            $v_dados = $this->form_validation->erros();
        } else {
            $v_dados['cod'] = 999;
            $params = array();
            $params['SET']['nome'] = $this->input->post('nome');
            $params['SET']['conteudo'] = $this->input->post('conteudo');
            $params['SET']['id_publicidade_tipos'] = $this->input->post('id_publicidade_tipos');
            $params['SET']['id_user'] = $this->session->userdata('usuario_id_user');
            $params['SET']['id_publicidade_tamanho'] = $this->input->post('id_publicidade_tamanho');

            if ($this->input->post('id_publicidade') == '') {
                $v_dados['id'] = $this->publicidade_model->cadastrar($params);
                $v_dados['msg'] = $this->lang->line('lang_insert');
            } else {
                $params['AND']['id_publicidade'] = $this->input->post('id_publicidade');
                $v_dados['id'] = $this->input->post('id_publicidade');
                $v_dados['msg'] = $this->lang->line('lang_update');
                $this->publicidade_model->alterar($params);
            }
        }
        echo json_encode($v_dados);
    }

    private function rastrear($id_publicidade) {
        $params = array();
        $params['AND']['id_publicidade'] = $id_publicidade;
        $params['GROUPBY'] = 'tipo';
        $params['CAMPOS'] = 'tipo, COUNT(quantidade) as quantidade';
        $b_consultar = $this->publicidade_rastrear_model->consultar($params);
        if ($b_consultar == NULL) {
            return array();
        } else {
            return (array) $b_consultar;
        }
    }

}
